iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0

今天要來介紹Codeigniter的路由!(Routes)

一般來說,Codeigniter的URI和Controller(控制器)存在一對一的關係。
我們在Day 5靜態頁面中有提到一般的URI長這樣

http(s)://example.com/(index.php)/<控制器類別Controller-class>/<控制器方法Controller-method>/<參數arguments>
即是
example.com/class/function/id/

不過,有時候你會須要自訂URI,這時候就會需要用到路由

路由設定檔

/application/config/routes.php

萬用字元

Codeigniter保留了兩個萬用字元!分別是(:any)(:num)
(:num) 將對應到只含有數字的一個片段。 (:any) 將對應到含有任何字元的一個片段(除了 /)。

正則表達式 (Regular Expression)

Codeignter支援以正則表達式做路由!像是([a-z]+)(.+)
有關正則表達式的相關資訊 http://www.regular-expressions.info

範例

$route['journals'] = 'blogs';       //將 /journals 對應到 blogs這個class
$route['product/(:any)'] = 'catalog/product_lookup';            //將 /proudct/<任意字串> 對應到catalog::product_lookup()
$route['product/(:num)'] = 'catalog/product_lookup_by_id/$1';   //將 /proudct/<任意字串> 對應到catalog::product_lookup_by_id($id), $id即為符合`(:num)`的值
$route['proudct/([a-z]+)']         //將 /proudct/<([a-z]+)> 對應到catalog::index($id), $id即為符合`([a-z]+)`的值

HTTP Method

限定Request時的HTTP Method (GET, POST, OPTION, DELETE, PUT)等

範例

$route['product']['PUT'] = 'manage_proudct/add'; //當uri為/product且HTTP  Request Method為PUT時,對應到manage_proudct::add()

保留的路由

首頁路由

$route['default_controller'] = 'welcome';

404 Not Found路由

$route['404_override'] = '';

設定值:是否將URI中的連字號-轉為底線_

$route['translate_uri_dashes'] = FALSE;

上一篇
[Day 6] 什麼是RESTful API
下一篇
[Day 8] 連接與操作資料庫
系列文
三十天攻略RESTful API (使用codeigniter3)15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言